"""
@author: xxw
@file: 01.操作系统.py
@time: 2023/6/26 9:48
"""

#操作系统是一个大的软件    资源分配
# 1、文件系统
# 2、进程调度（cpu）
# 3、内存管理    逻辑地址，物理地址，段页，缺页中断，实模式，slab，内存管理单元（MMU），tlb
# 4、网络接口
# 5、进程通信

# 多任务操作系统
# cpu   时间片
# 物理cpu 逻辑cpu
# 寄存器  程序计数器 当前指令指针


# 并发：某一个时间段内，处理多件事情。交替执行
# 并行：同一时刻，可以处理多件事情

# 进程：正在运行的程序，是系统进行资源分配的最小单位
# 进程由数据段、程序段、进程控制块（PCB）

# 32位操作系统，程序最大内存4G  虚拟内存
#     内核空间 1G
#     用户空间 3G   栈区（系统分配和释放，局部变量）
#                  堆区（自己申请 自己释放）
#                   数据段（bbs：未初始化的静态数据   data：已初始化的静态数据）
#                   代码段
# 进程之间相互隔离

# 进程通信
# 1、管道  匿名管道  命名管道
# 2、消息队列
# 3、信号
# 4、信号量
# 5、共享内存
# 6、socket

# 线程：运行在进程之上，是操作系统进行调度的最小单位

#一个进程可以有一个以上的线程，进程之间都是独立的， 一个进程内的线程共享这个进程空间
# 同个进程内的线程是可以直接交流的，两个进程要想通信，必须通过内核代理实现
# 创建新的线程很简单，创建新的进程需要对父进程进行克隆，所有的进程都是由另外一个进程创建
# 一个线程可以控制和操作同一个进程内的其他线程，进程只能操作子进程
# 一个主线程改变可能会影响其他线程

# 进程的五态模型：新建、就绪、运行、阻塞、终止

# 上下文切换